public class Main {
    public static void main(String[] args) {
        Outer01 outer01 = new Outer01("ysy");
        outer01.m2();

    }
}
class Outer01 {
    private String name;
    public Outer01(String name) {
        this.name = name;
    }
    private void m1(){
        System.out.println("Outer01.m1()...");
    }
    public void m2() {
        //1.局部内部类是定义在外部类的局部位置，方法或者代码块中
        //2.可以访问外部类的所有成员，包括私有
        //3.不能添加访问修饰符，但是可以用final修饰
        //4.作用域：仅仅在定义它的方法或代码块中
        class Inner01 {//局部内部类,本质就是一个类
            //如果外部类和局部内部类成员重名，遵循就近原则
            String name="aaa";
            public void print() {
                System.out.println("Inner01.print()...");
                System.out.println("name: " + name);
                System.out.println("外部类的name:"+Outer01.this.name);
                //Outer01.this的本质就是外部类的对象，即那个对象调用了m3，Outer01.this就是哪个对象，比如现在就是outer01
                m1();
            }
        }
        Inner01 inner01 = new Inner01();
        inner01.print();
    }
}
